//
// Created by dlr123 on 2021/10/19.
//

#ifndef PROJECT_KEYED_H
#define PROJECT_KEYED_H
#include "main.h"

typedef enum {
    KEY_CHECK = 0,
    KEY_COMFIRM,
    KEY_RELEASE
}KeyState_TypeDef;

typedef enum {
    SW2 = 0,
    SW3,
}Key_TypeDef;

typedef enum {
    BUTTEN_OFF = 0,
    BUTTEN_ON
}KeyButtenState_TypeDef;

typedef struct {
Key_TypeDef Instance;
GPIO_TypeDef *Key_GPIO_Port;
uint16_t Key_GPIO_Pin;
KeyState_TypeDef KeyState;
KeyButtenState_TypeDef ButtenFlag;
}Key_HandleTypeDef;

#ifdef LED1_Pin
#define LED1_TOGGLE()   HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin)
#define LED1_OFF()   HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET)
#define LED1_ON()   HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET)


extern Key_HandleTypeDef hsw2;
extern Key_HandleTypeDef hsw3;
void Key_timely_detect(Key_HandleTypeDef * hkey);
void KeyInit();
#endif


#ifdef LED0_Pin
#define LED0_TOGGLE()   HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin)
#define LED0_OFF()       HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_SET)
#define LED0_ON()      HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,GPIO_PIN_RESET)
#endif
#endif //PROJECT_KEYED_H
